package com.ijiangtao.studevtech.demo.csv.day.DT20170501.model;

import java.util.Date;

import org.supercsv.cellprocessor.CellProcessorAdaptor;
import org.supercsv.cellprocessor.Optional;
import org.supercsv.cellprocessor.ParseDate;
import org.supercsv.cellprocessor.ParseInt;
import org.supercsv.cellprocessor.constraint.StrMinMax;
import org.supercsv.cellprocessor.constraint.Unique;
import org.supercsv.cellprocessor.ift.CellProcessor;
import org.supercsv.util.CsvContext;

public class UserBean {
	
	private String username, password;
	private String date;
	private int zip;
	private String town;
	
	private boolean isProcessed=false;
	@Override
	public String toString() {
		return "UserBean [username=" + username + ", password=" + password + ", date=" + date + ", zip=" + zip
				+ ", town=" + town + "]";
	}
	
	/* getters and setters */
	
	public String getUsername() {
		return username;
	}
	public boolean getIsProcessed() {
		return isProcessed;
	}

	public void setProcessed(boolean isProcessed) {
		this.isProcessed = isProcessed;
	}

	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getDate() {
		return date;
	}
	public void setDate(String date) {
		this.date = date;
	}
	public int getZip() {
		return zip;
	}
	public void setZip(int zip) {
		this.zip = zip;
	}
	public String getTown() {
		return town;
	}
	public void setTown(String town) {
		this.town = town;
	}
	
	/*
	 * 第一列是一个字符串，并且值是唯一的，长度为1到20 第二列是一个字符串，长度是1到35
	 * 第三列为一个日期类型，格式为天/月/年（day/month/year）
	 * 第四列是一个整型数字，但只有这列有值的时候ParseInt处理器才会去处理这个值（其实就是该列可以为空） 第五列为一个字符串（默认），不使用处理器
	 */
	public final static CellProcessor[] processors = new CellProcessor[] { 
			new Unique(new StrMinMax(1, 20)), // 1
			new StrMinMax(1, 35), // 2
			new ParseDate("dd/MM/yyyy"), // 3
			new Optional(new ParseInt()), // 4
			null,// 5
			new CellProcessorAdaptor() {  
	            @Override  
	            public Object execute(final Object value, final CsvContext context) {  
	                String v = (String) value;  
	                if (v.length() > 5) {  
	                    v = v.substring(0,5) + "...";  
	                }  
	                return next.execute(v, context);  
	           }	
			}
	};
	

	/*
	 * 第一列是一个字符串，并且值是唯一的，长度为1到20 第二列是一个字符串，长度是1到35
	 * 第三列为一个日期类型，格式为天/月/年（day/month/year）
	 * 第四列是一个整型数字，但只有这列有值的时候ParseInt处理器才会去处理这个值（其实就是该列可以为空）
	 *  第五列为一个字符串（默认），不使用处理器
	 */
	public final static CellProcessor[] write_processor = new CellProcessor[] { 
			new Unique(new StrMinMax(1, 20)), // 1
			null, // 2
			null,// 3
			new Optional(new ParseInt()), // 4
			null,// 5
			null
	};
	
}
